Today, people often utilize computing devices (or systems) for a wide variety of purposes. Users can use their computing devices to, for example, interact with one another, create content, share information, and access information. In some instances, a user operating a computing device can access resources (e.g., a website of a content distribution system) over a network (e.g., Internet) to request content to be streamed to the computing device. Such content may include audio and/or video data, for example. Under conventional approaches, the content to be streamed may be encoded at a constant or variable bit rate. This bit rate provides a measure of the number of bits needed to provide the content on the computing device over some period of time. For example, if a video was encoded at a bit rate of 200 kilobits per second (kbps), then streaming each second of the video generally requires transmitting 200 kilobits of data to the computing device.
When streaming content, a content player running on the computing device can be configured to buffer some portion of the content to reduce interruptions that may arise, for example, as a result of insufficient network bandwidth. In instances where the computing device has network bandwidth that is greater than that which is needed to stream the content, the content player can continue to buffer the content data during the streaming. For example, if the computing device is able to download data at a rate of 1,000 kbps, and the video to be streamed was encoded at 200 kbps, then the computing device can potentially buffer, at each second, an additional four seconds of the video. Such conventional approaches, however, may result in an unnecessary waste of resources, such as network bandwidth, if the buffered portions of the content are not utilized. For instance, using the example above, if the user ceases playback of the video within one second, then the bandwidth used to buffer the additional four seconds of the video was not optimized.